perm filename A2E.KK[S,DOC]2 blob sn#022066 filedate 1973-01-30 generic text, type T, neo UTF8
00100	UNIVERSITY OF UTAH COMPUTATIONAL PHYSICS GROUP           January 1973
00200	REPORT NO. UCP-6
00300	
00400	STANFORD ARTIFICIAL INTELLIGENCE LABORATORY          
00500	OPERATING NOTE 71
00600	
00700	
00800	
00900	
01000	
01100	
01200	
01300	
01400	
01500	
01600	
01700	
01800	
01900	
02000	                                 A2E
02100	
02200	
02300	     STANFORD AI PDP-10 ASCII TO EBCDIC CODE CONVERSION PROGRAM*
02400	
02500	
02600	
02700	                                 by
02800	
02900	
03000	                              Kevin Kay
03100	
03200	                         University of Utah
03300	
03400	
03500	
03600	
03700	
03800	
03900	
04000	
04100	
04200	
04300	
04400	
04500	
04600	
04700	
04800	
04900	
05000	*This research was sponsored by the Advanced Research Projects Agency
05100	of  the  Office  of  the  Department  of  Defense  under Contract No.
05200	F30602-70-C-0300 at the University of Utah.
     

00100	1. INTRODUCTION
00200	
00300		A2E  is a program for transferring files from the Stanford AI
00400	PDP-10 to an IBM 360 Series machines. It will transfer files  written
00500	in  ASCII from the PDP-10 to the System/360 and EBCDIC files from the
00600	System/360 to the PDP-10 .
00700	
00800	
00900	2. NOTES ON THE PROGRAM
01000	
01100	1)  Common  ASCII characters with no EBCDIC equivalent are translated
01200	as follows:
01300	
01400		ASCII	EBCDIC
01500	
01600		↑	?
01700		\	<space>
01800		[	<
01900		]	>
02000	
02100	On translation back to ASCII, ?,<sp>,< and > will  remain  unchanged,
02200	of course.
02300		Vertical tabs are ignored, and horizontal tabs  are  replaced
02400	by blanks, assuming eight spaces per tab.
02500	
02600	2)  The  program  uses the 7 track convert option of the System /360.
02700	Thus three 8-bit EBCDIC characters are written on the  tape  as  four
02800	six-bit  characters.   In  order to remain compatible with the PDP-10
02900	hardware, the number of characters on each tape record must therefore
03000	be  divisible  by nine. For this reason, the program writes and reads
03100	81 characters per record on the magnetic tape.
03200	
03300	3) If an SOS file is written on tape, the page number  appears  as  a
03400	sequence  number  in  columns  73-75  and  the line number in columns
03500	76-80. Column 81 is blank.
03600	
03700	4) The program assumes that the ASCII file  is  on  the  user's  disk
03800	area,  and  that the magnetic tape is on MTA0. These devices could be
03900	changed by an assignment statement such as
04000	
04100	.AS MTA1 MTA0
04200	
04300	4) If an ASCII form feed is encountered on input, the program assumes
04400	an  end of page, and fills up the output file with blank lines to the
04500	end of the page, assuming 59 lines per page.
04600	
04700	5) If an input ASCII line is longer than 72 characters, the remaining
04800	characters will be written in the next tape record, with asterisks in
04900	columns 73-80.
05000	
     

00100	3. INSTRUCTIONS FOR MOVING ASCII FILES TO THE SYSTEM/360
00200	
00300	
00400	a) Mount a magnetic tape on MTA0, write enabled.
00500	
00600	b) Rewind the tape.
00700	
00800	c) Run the program A2E as in the following prototype example.
00900	
01000	.R A2E
01100	
01200	INPUT CODE:   A<cr>
01300	    FILE NAME:  JOE<cr>
01400	
01500	*** TAPE CONTROL SECTION ***
01600	
01700	* S<cr>
01800	
01900	*↑C
02000	
02100	.
02200	
02300		The  tape  control  section  allows  users   all   the   tape
02400	positioning  options  of  PIP.   For a full description of the use of
02500	this section, the DEC documentation on the CODE program, of which A2E
02600	is an adaptation, should be consulted.
02700	
02800	
02900	d) Take the tape to the System/360 Computer  and  run  the  following
03000	prototype program:
03100	
03200	//A2E JOB  <jobcard>
03300	/* SETUP T,'PLEASE MOUNT TAPE U000 ON 0C0, READ ONLY'
03400	// EXEC PGM=IEHMOVE
03500	//SYSPRINT DD SYSOUT=A
03600	//SYSUT1 DD UNIT=2314,VOL=SER=SYS03,DISP=OLD
03700	//TAPE DD UNIT=TAPE7,DISP=(OLD,PASS),LABEL=(,BLP),VOL=SER=TAPE,
03800	//        DCB=(DEN=1,TRTCH=C,RECFM=F,LRECL=81)
03900	//SYS15 DD UNIT=2314,DISP=OLD,VOL=SER=SYS15
04000	//SYSIN DD *
04100	 COPY DSNAME=A123.BILL,FROM=0C0=(TAPE,1),TO=2314=SYS15,FROMDD=TAPE
04200	/*
04300	
04400		The above SETUP statement is peculiar to the Stanford 360/67.
04500	In addition, the disk volume and the file-name specification must  be
04600	altered as required.
04700	
04800		If you are using the Stanford  360/67,  you  will  find  that
04900	TAPEDUMP  is  cheaper  to  use  than IEHMOVE. You should also use the
05000	FUTILITY partition overnight if you can wait that long.  However, the
05100	JCL  will  have to be modified to use this partition. (See the Campus
05200	Facility BULLETIN, Vol VII, No 8 for details).
     

00100	A prototype TAPEDUMP job to do the same thing would be as follows:
00200	//A2E JOB  <jobcard>
00300	/* SETUP T,'PLEASE MOUNT TAPE U000 ON 7 TRACK, READ ONLY'
00400	// EXEC TAPEDUMP
00500	//GO.TWO DD UNIT=TAPE7,DCB=(DEN=1,TRTCH=C)
00600	//GO.FT11F001 DD DCB=(LRECL=81,BLKSIZE=1620),DISP=(,KEEP),
00700	//        VOL=SER=SYS15,DSN=A123.BILL
00800	//GO.SYSIN DD *
00900	 &PARMS DUMP=F,DISK=T,LDISK=81 &END
01000	/*
01100	
01200	
01300	e) Using WYLBUR, load the file as follows:
01400	
01500	USE BILL LRECL=81 ON SYS15 
01600	SET LENGTH=80 
01700	
01800	
01900	At this point, you have a regular WYLBUR data set and can do what you
02000	like with it  (e.g.,  print,  punch,  etc).  However,  it  still  has
02100	sequence numbers in columns 73/80. to remove these, say, in WYLBUR,
02200	
02300	CH 73/80 TO '' IN ALL NOLIST
02400	
02500		To gain the full advantage of the conversion, you may wish to
02600	specify the upper and lower case chain for printing.
02700	
     

00100	4. INSTRUCTIONS FOR MOVING EBCDIC FILES TO THE PDP-10.
00200	
00300	a) Using WYLBUR, save the file as follows:
00400	
00500	SAVE JOE ON SYS15 LRECL=81(1)
00600	
00700	
00800	b) Run the following program:
00900	
01000	//E2A JOB  <jobcard>
01100	/* SETUP T,'PLEASE MOUNT TAPE U000 ON 0C0, WRITE ENABLE'
01200	// EXEC PGM=IEHMOVE
01300	//SYSPRINT DD SYSOUT=A
01400	//SYSUT1 DD UNIT=2314,VOL=SER=SYS03,DISP=OLD
01500	//TAPE DD UNIT=TAPE7,DISP=(OLD,PASS),LABEL=(,BLP),VOL=SER=TAPE,
01600	//        DCB=(DEN=1,TRTCH=C,RECFM=F,LRECL=81)
01700	//SYS15 DD UNIT=2314,DISP=OLD,VOL=SER=SYS15
01800	//SYSIN DD *
01900	 COPY DSNAME=A123.JOE,FROM=2314=SYS15,TO=0C0=(TAPE,1),TODD=TAPE
02000	/*
02100	
02200	
02300	The F partition can also be used for this job, of course.
02400	
02500	c) Mount the tape on MTA0 at the AI Project.
02600	
02700	d) Rewind the tape.
02800	
02900	e) Run the program A2E as in the following prototype example:
03000	
03100	.R A2E
03200	
03300	INPUT CODE:   E<cr>
03400	
03500	OUTPUT FILE NAME:  XYZ<cr>
03600	
03700	*** TAPE CONTROL SECTION ***
03800	
03900	*S<cr>
04000	
04100	*
04200	
04300	
04400	f) If your input file had sequence  numbers  in  columns  73/80,  you
04500	would  now probably want to remove them with the E switch in PIP. You
04600	should also use the C switch to suppress trailing blanks and  convert
04700	multiple spaces to tabs.
     

00100	5. Reporting of Errors and Suggestions for Improvement.
00200	
00300		These should be recorded in the Stanford AI PDP-10  by  means
00400	of the command SEND ACH.
00500	
00600